Videos:
https://open.fing.edu.uy/courses/fsi/6/
https://open.fing.edu.uy/courses/fsi/7/
https://open.fing.edu.uy/courses/fsi/8/
Diapositivas:
[[iaa.pdf]]
[[politicas y modelos de seguridad.pdf]]
[[politicas y modelos de seguridad ii.pdf]]
Autenticación: es el proceso de verificar una (pretendida) identidad.
Dos razones para autenticar a los usuarios:
Se debería usar una o más de los siguientes:
Son varios pasos:
Tupla (A, C, F, L, S)
Almacenar el one-way hash.
Si el archivo es comprometido, el atacante igual tiene que invertir el hash o adivinar las passwords.
Se hashean las passwords en un string de 11 caracteres usando una de 4096 funciones de hash existentes.
Sistema:
Objetivo: encontrar
Hay dos formas de determinar si
Se podría esconder
Sino, bloquear el acceso a las
Ensayo y error a partir de una lista de passwords potenciales.
También conocido como Off-line: el atacante conoce
También conocido como On-line: el atacante tiene acceso a las funciones en
El objetivo siempre es maximizar el tiempo necesario para adivinar una password.
Para hallar cuánto demoraría en ejecutar un ataque offline, igualo la probabilidad a 1 y despejo
Objetivo: evitar ataques de diccionario diseñados para encontrar una password de cualquier usuario.
Método: perturbar la función de hash
Forzar a los usuarios a cambiar passwords luego de un cierto tiempo.
Es importante darle tiempo a los usuarios y no apurarlos a elegir la nueva password.
Los passwords tienen el problema de que son reusables. Si se comprometen, pueden volver a usarse en varios lugares (replay del password).
Una alternativa es que la password cambie cada vez que se usa.
Sea
El usuario y el sistema comparten una función secreta
Desafío-respuesta con la función
Usualmente usado en conjunción con password fija y reusable.
Passwords que pueden ser usadas exactamente una vez.
Esquema de one-time password basado en ideas de L. Lamport.
Opciones alternativas de autenticación.
El usuario tiene que conocer un secreto para ser autenticado.
El usuario debe presentar un token físico para ser autenticado.
Esquemas biométricos de autenticación.
La gente desarrolla mecánicamente tareas que son repetibles y específicas al individuo.
Cuando el usuario se loguea el sistema puede tomar también en cuenta dónde se encuentra.
Combinación de múltiples mecanismos alternativos.
Autorización: Es el proceso que determina (luego de su autenticación) a qué recursos de un sistema tiene acceso una identidad.
Control de acceso = Autenticación + Autorización
Objetos: archivos, memoria, impresoras, nodos en una red, etc.
Sujeto: un proceso que se ejecuta bajo una cierta identidad.
Una simple distinción entre entidad pasiva y activa.
Dos opciones para especificar control, estableciendo:
Dependiendo del enfoque e interés, operaciones de acceso varían desde lectura y escritura de archivos a invocación de métodos en un sistema orientado a objetos.
Un poco más de complejidad:
- execute, append, read, write
write es Observe y Alter
Un archivo tiene que ser abierto (lectura, escritura) antes de que sea permitido el acceso. Acceso de escritura generalmente incluye acceso para lectura.
El SO puede utilizar archivos (programas) sin necesidad de abrirlos: execute no precisa observe ni alter.
Políticas de control de acceso son definidas en función de tres operaciones:
Quién está a cargo de establecer las políticas de seguridad?
Establecer qué operaciones de acceso son permitidas.
Requerimientos:
Permisos de acceso pueden ser establecidos individualmente para cada sujeto y objeto.
Permisos asociados a los sujetos.
Corresponde a una fila de la MCA.
Capabilities son asociadas con el control de acceso discrecional (DAC).
Una lista de capabilities es una clave, token o ticket que otorga al proceso la aprobación para acceder a un objeto dentro del sistema informático. El usuario es evaluado según una lista de capabilities antes de obtener acceso a un objeto específico.
Una ACL asocia los permisos de acceso a un objeto con el objeto mismo.
Corresponde a una columna de la MCA.
Característica de seguridad típica de SO comerciales.
Las ACL también son asociadas con el control de acceso discrecional (DAC).
Manejo de permisos asociado a cada sujeto individual es complicado: implementación de grupos.
El modelo Unix de CA se basa en simples ACLs que asignan permisos a los principals user, group, others.
Difícil determinar los permisos de un usuario, por ejemplo, para revocarlos.
Centrando la atención en las operaciones de acceso, los privilegios son conjuntos de permisos para la ejecución de las mismas.
Típicamente, privilegios son asociados con funciones de SO y están relacionados con actividades de administración de sistemas, backup, acceso al mail o a la red.
Privilegios pueden ser entendidos como una capa intermedia entre los sujetos y las operaciones.
Políticas existentes asignaban niveles de seguridad a documentos y clearances asociadas a usuarios determinaban a que documentos éstos podían acceder.
Las versiones mas elementales de políticas usaban una jerarquía linealmente ordenada de niveles: unclassified, confidential, secret, top secret.
Problema: con un orden lineal de niveles sólo se pueden expresar políticas muy limitadas.
La estructura algebraica que permite responder dos cuestiones:
Un reticulado
Un orden parcial (
En seguridad se dice que
Para poder definir políticas need-to-know (least privilege) que controlan el acceso a recursos de un proyecto específico se introdujo el siguiente reticulado de niveles de seguridad.
Para formular un política de seguridad se deben describir:
Proceso de diseño y verificación:
[Bishop p.53] Si un *usuario individual puede setear un mecanismo de control de acceso* para permitir o denegar un acceso a un recurso, ese mecanismo constituye un control de acceso discrecional (DAC), también llamado un control de acceso basado en identidad (IBAC).
[Bishop p.53] Cuando un mecanismo de un sistema controla acceso a un objeto y un individuo no puede alterar ese acceso, entonces el control de acceso es mandatorio (MAC) (ocasionalmente llamado control de acceso basado en reglas).
MAC especifica el acceso que los sujetos tienen sobre objetos basado en la clasificación de seguridad que se hace de esos sujetos y objetos.
Este tipo de seguridad también es conocido como multilevel security.
Para describir una instancia del modelo preciso:
El modelo incluye 6 operaciones primitivas para manipular el conjunto de sujetos, el de objetos y la matriz de acceso:
Un sistema de protección es:
Un estado, es decir, una matriz de acceso, se dice que gotea (leaks) el permiso
si existe un comando que agrega el permiso en una entrada de la matriz de acceso que anteriormente no contenía ese permiso. Más formalmente, existen y tales que y, luego de la ejecución de , .
Nota: El hecho de que un permiso gotee no es necesariamente malo, muchos sistemas permiten a sujetos darle acceso a otros sujetos.
El problema que motiva la introducción de este concepto puede ser descrito de la siguiente forma:
"Suponer que un sujeto
Asuma un sistema de protección con los siguientes dos comandos:
Suponer que el usuario Juan desarrolló un programa que él desea sea ejecutado por otros usuarios pero no puedan modificarlo.
El sistema anterior no es seguro respecto a esta política, considere la siguiente secuencia de comandos:
grant_execute (Juan, José, P1)
modify_own_right (José, P1)
Dado un sistema de protección y un permiso
Un estado de un sistema de protección, o sea, su matriz
Dada una matriz de acceso
Los resultados sobre la decibilidad del problema de safety ilustran un principio importante, el principio de economía de mecanismos:
Juan puede acceder al contenido de O1 indirectamente desde O2, ya que Ana podría leer y escribir todo su contenido.
Los modelos DAC no tienen capacidad para proteger datos contra Troyanos embebidos en programas de una aplicación.
Los modelos MAC fueron desarrollados para prevenir este tipo de acceso ilegal.
Uno de los modelos de seguridad más difundidos:
Formulado como una máquina de estados que captura aspectos de confidencialidad.
Los permisos de acceso se definen usando una matriz de control de acceso y etiquetas de seguridad.
Las políticas establecen que la información no puede fluir hacia niveles de seguridad inferiores a los del repositorio origen.
El modelo sólo considera el flujo que ocurre cuando un subject observa o altera un objeto.
Se desea utilizar el estado del sistema para verificar su seguridad, entonces el conjunto de estados del modelo debe capturar todas las instancias de sujetos que están accediendo a objetos y todos los permisos especificados.
Asume que el write es implícitamente también un read.
BLP incluye una propiedad de no escritura hacia abajo pero que refiere al nivel de seguridad corriente del sujeto.
write
o append
el nivel corriente de seguridad del sujeto read
o write
.Un estado
se dice que es seguro si satisface las propiedades ss, * y sd.
Cuestionamiento de McLean al modelo BLP.
Supongamos un sistema con una transición que:
Aplicado a la prevención de conflicto de intereses.
Modela reglas de acceso en una consultora en la que sus analistas deben asegurar que no se generará conflicto de interés entre sus diferentes clientes.
Política de seguridad: ningún flujo de información puede causar un conflicto de interés.
Dinámicamente establece los permisos de acceso de un usuario basado en los accesos que ya ha efectuado el mismo.
Por lo tanto establecen que las restricciones de acceso pueden no ser aplicadas sobre información sanitizada.
La sanitización se realiza disfrazando la información de una corporación de forma de prevenir que se conozca la identidad de la misma.
Un conjunto de compañías C
Los sujetos (S) son los analistas, los objetos (O) son unidades de información
Objetos son organizados en 3 niveles
- Información
- Dataset (conjunto de datos de una compañía c)
- DS: O -> C (función que retorna el dataset de la compañía del objeto argumento)
- Clases de conflicto de interés (CoI)
- CoI: O ->
El nivel de seguridad de un objeto o es el par (CoI(o), DS(o)).
Información sanitizada es la que no contiene elementos sensibles. El nivel de seguridad es ({}, DS(o))
Historia de los accesos:
Políticas de seguridad
Si
Read
)Un sujeto
La Política Chinese Wall es una combinación de elección libre y control mandatorio:
Inicialmente un sujeto es libre de acceder a cualquier objeto que él desee. Una vez que la elección inicial se ha hecho, una Chinese Wall es creada para ese usuario en torno al conjunto de datos a los que pertenece el objeto.
La regla Read
no previene flujo indirecto de información.
Considerar el siguiente caso:
Acceso de escritura a un objeto
Write
)Un sujeto
El flujo de información es confinado al conjunto de datos de la compañia.
RBAC ha sido propuesto como un enfoque alternativo a DAC y MAC con el objetivo de simplificar la gestión de control de acceso y proveer soporte directo a la implementación de control de acceso basado en funciones de trabajo.
Roles representan funciones dentro de una organización y las autorizaciones son otorgadas a los roles en vez de a los usuarios (sujetos).
Los usuarios son entonces autorizados a “jugar” roles, y por lo tanto a adquirir las autorizaciones que le son otorgadas a esos roles.
Como los roles representan funciones organizacionales, un modelo RBAC puede directamente soportar políticas de seguridad de la organización.
Es definido como un ser humano, una máquina, un proceso, un agente inteligente autónomo, etc.
Es una función dentro del contexto de una organización con una semántica asociada en relación a su autoridad y responsabilidad
Es un modo de acceso que puede ser ejercitado sobre los objetos del sistema. Tanto los objetos como los permisos son dependientes del dominio.
Es una instancia particular de una conexión de un usuario al sistema tal que define el sub-conjunto de roles activados por el usuario. En un momento dado, el usuario puede tener activadas varias sesiones concurrentemente.
Representa el primer paso hacia la definición del estándar del modelo RBAC.
https://security.stackexchange.com/a/169877